1️⃣ Introducción

Esta guía proporciona una serie de gráficos para realizar un Análisis Exploratorio de Datos (EDA) en diferentes niveles:

Esta guía te ayudará a seleccionar el gráfico más adecuado según el tipo de variable analizada.


2️⃣ Carga de Librerías y Configuración

# 📌 Cargar librerías necesarias
library(here)           # Manejo de rutas dinámicas
library(janitor)        # Limpieza de nombres de columnas
library(summarytools)   # Resumen estadístico detallado
library(ggplot2)        # Gráficos
library(dplyr)          # Manipulación de datos
library(plotly)         # Gŕaficos Interactivos

# 📌 Configuración de gráficos globales
theme_set(theme_minimal())
source(here("reportes/Proy_Oral_Cancer_Prediction/00_CONFIGURACION.r"))

# 📌 Cargar scripts de preprocesamiento
source(here("scripts/utils.r"))
source(here("scripts/1_preprocesamiento_esp_dataset.r"))
source(here("scripts/2_analisis_gráfico.r"))

3️⃣ Carga y Preprocesamiento de Datos

# 📌 Cargar y preprocesar el dataset
dataset_oral_cancer <- preprocesar_datos(here("datasets/oral_cancer_data_limpio.csv"), "Oral Cancer")
## 📥 Cargando datos del proyecto: Oral Cancer 
## 🧹 Realizando limpieza de datos...
## 📊 Aplicando preprocesamiento específico para Oral Cancer...
## ✅ Preprocesamiento completado para: Oral Cancer

📌 ¿Qué hace esta función?

✔ Limpia los nombres de las columnas.

✔ Convierte variables categóricas en factores.

✔ Filtra valores inválidos.

✔ Retorna un dataset listo para análisis.


4️⃣ Análisis Unidimensional

El análisis unidimensional permite estudiar la distribución de una sola variable.

📌 Boxplot para una variable cuantitativa

📌 Útil para: Detectar valores atípicos y distribución de datos.

# Crear el boxplot usando la función crear_boxplot
p_boxplot_edad <- crear_boxplot(data = dataset_oral_cancer, y = "age", 
                                title = "Distribución de la Edad de los Pacientes", 
                                xlab = "Pacientes", ylab = "Edad", 
                                colores = "lightblue", rotar_x = FALSE)

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_boxplot_edad, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/boxplot_edad.png"))

# Convertir a gráfico interactivo
p_boxplot_edad_interactivo <- convertir_interactivo(p_boxplot_edad)
p_boxplot_edad_interactivo

📌 Histograma para una variable cuantitativa

📌 Útil para: Observar la distribución de frecuencia de una variable numérica.

# Crear el histograma usando la función crear_histograma
p_histograma_edad <- crear_histograma(data = dataset_oral_cancer, x = "age", 
                                      title = "Distribución de Edad de los Pacientes", 
                                      xlab = "Edad", ylab = "Frecuencia", 
                                      binwidth = 5, colores = "lightblue", densidad = TRUE)

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_histograma_edad, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/histograma_edad.png"))

# Convertir a gráfico interactivo
p_histograma_edad_interactivo <- convertir_interactivo(p_histograma_edad)
p_histograma_edad_interactivo

📌 Histograma para una variable cuantitativa por categorias

# Definir colores personalizados para género
colores_genero <- c("Male" = "blue", "Female" = "red")

# Crear el histograma usando la función crear_histograma
p_histograma_edad_genero <- crear_histograma(data = dataset_oral_cancer, x = "age", fill = "gender", 
                                             title = "Histograma de Edad por Género", 
                                             xlab = "Edad", ylab = "Frecuencia", 
                                             binwidth = 1, colores = colores_genero)

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_histograma_edad_genero, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/histograma_edad_genero.png"))

# Convertir a gráfico interactivo
p_histograma_edad_genero_interactivo <- convertir_interactivo(p_histograma_edad_genero)
p_histograma_edad_genero_interactivo

📌 Barplot para una variable cualitativa

📌 Útil para: Mostrar la frecuencia de categorías en una variable cualitativa.

# Crear el barplot usando la función crear_barplot
p_barplot_genero <- crear_barplot(data = dataset_oral_cancer, x = "gender", fill = "gender", 
                                  title = "Distribución de Género", 
                                  xlab = "Género", ylab = "Frecuencia", 
                                  colores = c("Male" = "cyan", "Female" = "pink"))

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_barplot_genero, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/barplot_genero.png"))

# Convertir a gráfico interactivo
p_barplot_genero_interactivo <- convertir_interactivo(p_barplot_genero)
p_barplot_genero_interactivo
# Crear el barplot cruzado usando la función crear_barplot
p_barplot_tabaco_genero <- crear_barplot(data = dataset_oral_cancer, x = "gender", fill = "tobacco_use", 
                                         title = "Consumo de Tabaco por Género", 
                                         xlab = "Género", ylab = "Frecuencia", 
                                         colores = c("Yes" = "cyan", "No" = "green"), dodge = TRUE)

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_barplot_tabaco_genero, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/barplot_tabaco_genero.png"))

# Convertir a gráfico interactivo
p_barplot_tabaco_genero_interactivo <- convertir_interactivo(p_barplot_tabaco_genero)
p_barplot_tabaco_genero_interactivo

📌 Gráfico Interactivo de Distribución por País (Country)

# Crear gráfico de barras para Country usando la función crear_barplot
p_country <- crear_barplot(data = dataset_oral_cancer, x = "country", fill = "country", 
                           title = "Distribución de Pacientes por País", 
                           xlab = "País", ylab = "Frecuencia", 
                           colores = NULL, voltear = TRUE, legend_position = "none")


# Guardar la imagen usando la función guardar_grafico
guardar_grafico(p_country, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/barplot_country.png"), ancho = 8, alto = 6)

# Convertir a gráfico interactivo usando la función convertir_interactivo
p_country_interactivo <- convertir_interactivo(p_country)
p_country_interactivo

5️⃣ Análisis Multivariado

El análisis multivariado permite explorar relaciones entre dos o más variables.

📌 Cualitativa vs Cualitativa (Gráfico de barras cruzado)

📌 Útil para: Comparar la frecuencia de categorías en dos variables cualitativas.

# Crear el barplot cruzado usando la función crear_barplot
p_barplot_tabaco_pais <- crear_barplot(data = dataset_oral_cancer, x = "country", fill = "tobacco_use", 
                                         title = "Consumo de Tabaco por País", 
                                         xlab = "Género", ylab = "Frecuencia", 
                                         colores = c("Yes" = "cyan", "No" = "green"), dodge = TRUE)

# Rotar las etiquetas del eje X
p_barplot_tabaco_pais <- p_barplot_tabaco_pais +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))  # Rotar 45 grados y ajustar alineación

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_barplot_tabaco_genero, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/barplot_tabaco_pais.png"))

# Convertir a gráfico interactivo
p_barplot_tabaco_pais_interactivo <- convertir_interactivo(p_barplot_tabaco_pais)
p_barplot_tabaco_pais_interactivo

📌 Cuantitativa vs Cualitativa (Boxplot)

# Definir colores personalizados para etapa de cáncer
etapa_cancer <- c("0" = "darkorange", "1" = "dodgerblue", "2" = "cyan", "3" = "blue", "4" = "black")

# Crear el boxplot usando la función crear_boxplot
p_boxplot_tumor_etapa <- crear_boxplot(data = dataset_oral_cancer, x = "cancer_stage", y = "tumor_size_cm", fill = "cancer_stage", 
                                       title = "Distribución del Tamaño del Tumor por Etapa del Cáncer", 
                                       xlab = "Etapa del Cáncer", ylab = "Tamaño del Tumor (cm)", 
                                       colores = etapa_cancer)

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_boxplot_tumor_etapa, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/boxplot_tumor_etapa.png"))

# Convertir a gráfico interactivo
p_boxplot_tumor_etapa_interactivo <- convertir_interactivo(p_boxplot_tumor_etapa)
p_boxplot_tumor_etapa_interactivo

📌 Útil para: Comparar la distribución de una variable numérica en función de una variable categórica.

📌 Cuantitativa vs Cuantitativa (Diagrama de dispersión)

# Crear el scatterplot usando la función crear_scatterplot
p_scatter_edad_tumor <- crear_scatterplot(data = dataset_oral_cancer, x = "age", y = "tumor_size_cm", 
                                          title = "Relación entre Edad y Tamaño del Tumor", 
                                          xlab = "Edad", ylab = "Tamaño del Tumor (cm)", 
                                          colores = "steelblue")

# Guardar la imagen en la carpeta usando here()
guardar_grafico(p_scatter_edad_tumor, here("reportes/Proy_Oral_Cancer_Prediction/resultados_generados/scatter_edad_tumor.png"))

# Convertir a gráfico interactivo
p_scatter_edad_tumor_interactivo <- convertir_interactivo(p_scatter_edad_tumor)
p_scatter_edad_tumor_interactivo

📌 Útil para: Identificar tendencias y relaciones entre dos variables numéricas.


📌 Conclusión

Esta guía ha mostrado cómo aplicar distintos tipos de gráficos según el tipo de análisis deseado:

Análisis Unidimensional: Estudio de una sola variable. ✅ Análisis Multivariado: Exploración de relaciones entre variables. ✅ Visualización con ggplot2 para obtener insights del dataset.